<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <link rel="Stylesheet" type="text/css" href="default.css" />
  <meta http-equiv="Content-Type" content=
  "text/html; charset=utf-8" />

  <title>History of changes</title>
</head>

<body>
  <h1>History of changes</h1>

  <h3>Version 3.5</h3>
  <p>[!] .NET: Many bugs are fixed<br />
  [!] ELF: Fixed a bug that occurred inside VMProtectGetCurrentHWID while getting HDD information<br />
  [+] .NET: Added support of .NET Core (3.0+) and .NET Standard (2.1+)<br />
  [+] .NET: Added import protection<br />
  [+] .NET: Added resources protection<br />
  [+] .NET: Added support of mixed assemblies<br />
  [*] Mach-O: Improved support of sections with types S_THREAD_LOCAL_VARIABLES and S_THREAD_LOCAL_REGULAR<br />
  [*] Mach-O: Improved support of Objective-C<br />
  [*] ELF: Improved support of relocations with type R_386_PC32<br />
  [*] PE: Improved antidebug<br />
  </p>

  <h3>Version 3.4</h3>
  <p>[!] Fixed a bug that occurred during virtualization of BT [m16], POP [m64]<br />
  [+] Added support of .NET applications<br />
  [+] Added disassembling PMULLD<br />
  [+] PE: Added support of COFF symbols<br />
  [*] ELF: Improved disassembling of SWITCH<br />
  [*] ELF: Improved support of relocations with type R_386_PC32<br />
  [*] PE: Improved exception handling<br />
  [*] PE: Improved support of Windows Server 2016 Datacenter<br />
  </p>

  <h3>Version 3.3</h3>
  <p>[+] PE: Added support of "Control Flow Guard"<br />
  [+] PE: Added support of PDB files for loading symbols<br />
  [+] Mach-O: Added support of OS X 10.13 and later<br />
  [+] ELF: Added support of statically linked libstdc++.so<br />
  [+] ELF: Added support of CentOS 5 and CentOS 6<br />
  [+] ELF: Added support of TLS segments<br />
  [+] ELF: Added support of HTTPS for VMProtectActivateLicense<br />
  [*] PE: Improved exception handling for x64 applications<br />
  [*] PE: Improved detection of virtualization tools under the Hyper-V role<br />
  [*] PE: Improved demagling of MSVC symbols<br />
  [*] Mach-O: Improved exception handling<br />
  [*] Mach-O: Improved support of Objective-C<br />
  [*] ELF: Fixed a bug that occurred when the "Pack the Output File" option was used<br />
  </p>

  <h3>Version 3.2</h3>
  <p>[!] PE: Fixed an error that occurred in VMProtectIsValidImageCRC in protected driver<br />
  [!] Fixed an error that occurred during virtualization of XOR with relocations<br />
  [*] PE: Improved packing of sections with the TLS directory<br />
  [*] PE: Improved antidebug<br />
  [*] PE: The Taggant System has been removed<br />
  [*] Accelerated unpacking when the "<a href=
  "project_options.htm#PackOutputFile">Packing output file</a>" option was used<br />
  [+] Added support of ELF format<br />
  [+] Added disassembling of AVX commands<br />
  </p>

  <h3>Version 3.1</h3>

  <p>[!] Fixed an error that occurred during disassembling of MOVUPS with REX prefix 0x41<br />
  [!] Fixed an error that occurred during virtualization of XLAT, FSIN and POPAD<br />
  [*] Improved exceptions handling<br />
  [*] Improved VM architecture<br />
  [*] Improved checking the integrity of a file on disk when the "<a href=
  "project_options.htm#MemoryProtection">Memory protection</a>" option was used<br />
  [*] Improved virtualization of FSTENV, FSTCW, FSAVE and FSTSW<br />
  [*] PE: VMProtectActivateLicense now works via WinHTTP and uses IE proxy settings by default<br />
  [*] PE: VMProtectGetCurrentHWID has been improved for kernel drivers<br />
  [*] PE: Improved support of Delphi 6 when the "<a href=
  "project_options.htm#ImportProtection">Import protection</a>" option was used<br />
  [*] PE: Improved antidebug<br />
  [+] Added virtualization of ADD, AND, SUB, XOR, OR with LOCK prefix<br />
  [+] Added virtualization of CQO<br />
  [+] Added disassembling PINSRB, PINSRD, PINSRQ, PMINSD, PMINUW, PMINUD, PMAXSB, PMAXSD, PMAXUW and PMAXUD<br />
  [+] Mach-O: Added support of section "__unwind_info"<br />
  [+] Mach-O: Added support of LC_LOAD_WEAK_DYLIB<br />
  [+] Mach-O: Added support of Delphi Berlin<br />
  [+] PE: Added support of Windows 10 for kernel drivers<br />
  [+] PE: Now the "Rich Header" is deleted when the "<a href=
  "project_options.htm#Additional">Strip debug information</a>" option was used<br />
  [+] Ultimate: Functionality of "<a href="project_files.htm">Files</a>" has been enhanced. Now you can create folders and use symbols ".." for indication of the parent directory<br />
  [+] GUI: At displaying of protected ANSI strings the code page from Windows settings is used now<br />
  [+] LUA: Usage of functions from external DLLs has been added<br />
  </p>

  <h3>Version 3.0</h3>

  <p>[*] PE: Added support for exceptions in x64 code<br />
  [*] Mach-O: Added support for <a href="sdk_functions.htm">SDK functions</a><br />
  [*] Ultimate: Added support for <a href="manager/usage/api.htm">licensing functions</a> for drivers and applications written on VB6<br />
  [*] Ultimate: Functionality of <a href="project_files.htm">DLL Box</a> has been enhanced. Now the protected application can envelope any files
  including ActiveX servers with optional automatic registration in the virtual registry.<br />
  [*] Virtual Box detection has been improved<br />
  [*] Script engine changed to LUA<br />
  [*] New VM architecture<br />
  [+] A new function <a href="sdk_functions.htm#VMProtectIsProtected">VMProtectIsProtected</a> is added to the SDK<br />
  </p>

  <h3>Version 2.13</h3>

  <p>[!] PE: Added support for Delay Import<br />
  [!] PE: Improved compatibility with VS2012<br />
  [!] PE: Improved compatibility with Embarcadero RAD Studio XE3<br />
  [!] PE: Improved compatibility with MinGW<br />
  [!] Ultimate: Improved compatibility of DLL Box with Windows 8<br />
  [+] WebLM: Added support for mbstring.func_overload = 2<br />
  [+] WebLM: In the activation code a new field "Expiry date" has been added.
  (Now VMProtectActivateLicense can return ACTIVATION_EXPIRED if the current date exceeds the expiry date)<br />
  [+] WebLM: Fields "Expiry date" and "Maximum build date" now contain the "days since purchase" value<br /></p>

  <h3>Version 2.12</h3>

  <p>[!] PE: Fixed bugs in x64 applications<br />
  [!] PE: Fixed an error that occurred if an application had the IMAGE_DLLCHARACTERISTICS_NX_COMPAT flag<br />
  [+] PE: Added support for Windows 8<br />
  [+] WebLM: Added Russian and Chinese language<br /></p>

  <h3>Version 2.11</h3>

  <p>[!] Fixed a bug during <a href=
  "project_options.htm#PackOutputFile">packing</a> in х64
  applications<br />
  [!] PE: Fixed a bug that occurred when the 
  "<a href="project_options.htm#ImportProtection">Import protection</a>" option was used<br />
  [!] PE: Fixed a bug emerging when a TLS section with relocation tables was processed<br />
  [+] Ultimate: Added <a href=
  "manager/activation.htm">activation/deactivation</a><br />
  [+] Mach-O: Added <a href=
  "project_options.htm#PackOutputFile">packing</a><br />
  [*] PE: Support for DriverVerifier<br />
  [*] PE: Improved support for SEH for MSVC<br />
  [*] Mach-O: Improved support for IndirectSymbols<br /></p>

  <h3>Version 2.10</h3>

  <p>[!] Fixed a bug that occurred when the 
  "<a href="project_options.htm#ResourceProtection">Resource protection</a>" option was used<br />
  [!] Fixed a bug that occurred when the
  "<a href="project_options.htm#ImportProtection">Import protection</a>" option was used<br />
  [!] Fixed a bug that occurred when x64 drivers without relocation tables were protected<br />
  [+] Added support for Max OS X executables (Mach-O format)<br />
  [+] Added support for HLT command<br />
  [+] New API is added to SDK - <a href=
  "sdk_functions.htm#VMProtectFreeString">VMProtectFreeString</a><br />
  [*] Improved identification of markers and strings marked with <a href=
  "sdk_functions.htm#VMProtectDecryptStringA">VMProtectDecryptStringA</a>/<a href="sdk_functions.htm#VMProtectDecryptStringW">VMProtectDecryptStringW</a><br />
  [*] Now you can use relative paths in output file name and license parameters<br />
  [*] Improved support for SEH for Delphi<br />
  [*] SenseLock Edition: Added the "<a href=
  "project_options.htm#ResourceProtection">Resource protection</a>" option<br />
  [*] SenseLock Edition: A <a href=
  "manager/licenses.htm">license manager</a> is added to the GUI version<br />
  [*] SenseLock Edition: programming of keys is added to the GUI version<br />
  [*] Licenses in the license manager can now be copied and pasted to/from the clipboard<br /></p>

  <h3>Version 2.09</h3>

  <p>[!] Fixed a bug that occurred when <a href=
  "project_options.htm#DebuggerDetection">a debugger was detected</a>
  under Windows 2000<br />
  [!] Fixed a bug that occurred while disassembling PMULHUW and LDMXCSR commands<br />
  [!] Fixed a bug that occurred when <a href=
  "project_options.htm#MemoryProtection">memory protection</a> was used(file integrity wasn't checked)<br />
  [!] Ultimate: Fixed a bug that occurred when running protected files under Windows 2000 (this required 
  EncodePointer/DecodePointer functions from kernel32.dll)<br />
  [*] Improved virtualization of exception handlers for Visual
  C<br />
  [*] <a href="project_options.htm#ResourceProtection">Resource protection</a> is now available in Lite and Professional versions<br />
  [*] Added support for EnumResourceTypes, EnumResourceNames and
  EnumResourceLanguages when using <a href=
  "project_options.htm#ResourceProtection">resource protection</a> (available only when called from the main module)<br />
  [+] Added support for exceptions for Borland C Builder<br />
  [+] Ultimate: Improved performance of <a href=
  "manager/usage/api.htm#VMProtectGetSerialNumberState">VMProtectGetSerialNumberState</a>
  and <a href=
  "manager/usage/api.htm#VMProtectGetSerialNumberData">VMProtectGetSerialNumberData</a> functions<br />

  [+] The script for <a href=
  "script_classes.htm#TLicenseManager">TLicenseManager</a> now includes the
  <a href=
  "script_classes.htm#TLicenseManager.Save">Save</a> method<br />
  [-] The "Move resources to the end of the file" option is removed. The resource section is always the last one now.<br /></p>

  <h3>Version 2.08</h3>

  <p>[!] Fixed a bug that occurred when assembling the TEST [XXXX], REG command<br />
  [!] Fixed a bug that occurred while disassembling х64 commands with the 0x67 prefix<br />
  [*] Improved support for files with small values of 
  SectionAlignment<br />
  [*] Improved placement of markers and strings for Intel
  Compiler 12 and Lazarus<br />
  [*] Improved <a href="project_options.htm#ImportProtection">import protection
  </a><br />
  [*] Ultimate: Now you can load project files with licensing parameters<br />
  [+] Ultimate: Added <a href=
  "project_options.htm#ResourceProtection">resource protection</a><br />
  [+] Ultimate: The script now includes classes: <a href=
  "script_classes.htm#TLicense">TLicense</a> and <a href=
  "script_classes.htm#TLicenseManager">TLicenseManager</a><br /></p>

  <h3>Version 2.07</h3>

  <p>[!] Fixed an error occurred when working with the <a href=
  "manager/licenses.htm">license manager</a> if Windows had other system language than English<br />
  [+] In the expert mode you can now change the default messages: "Debugger is detected", "Virtualization tools are detected", "File is corrupted" and "Serial number is required"
  <br />
  [+] The script class <a href=
  "script_classes.htm#TVMProtector">TVMProtector</a> now has the <a href=
  "script_classes.htm#TVMProtector.Messages">Messages</a> property<br />
  [*] Improved compatibility of <a href=
  "project_options.htm#MemoryProtection">memory protection</a> with some antiviruses<br /></p>

  <h3>Version 2.06</h3>

  <p>[!] Fixed a bug with marker name identification for MinGW<br />
  [!] Fixed an error occurred during <a href=
  "project_options.htm#ImportProtection">import protection</a> in х64 files
  <br />
  [!] Fixed an error occurred during virtualization of FILD WORD
  PTR [XXXX]<br />
  [!] Fixed an error occurred while disassembling PSRLW<br />
  [!] Fixed an error occurred in <a href=
  "project_files.htm">DLL Box</a> when the antivirus was active<br />
  [*] Project file is now saved as XML<br />
  [*] Script is now stored in a project file<br />
  [*] Ultimate: <a href="manager/licenses.htm">License manager</a> is now in the GUI version<br />
  [*] Ultimate: Significantly sped up execution of code <a href=
  "project_functions.htm#LockToKey">locked to a serial number</a><br />
  [+] Added support for MAP files for MinGW<br />
  [+] Added support for JCLDEBUG<br />
  [+] The script class <a href=
  "script_classes.htm#TPEDirectory">TPEDirectory</a> now has the 
  Clear method<br />
  [+] The script class <a href=
  "script_classes.htm#TVMProcedure">TVMProcedure</a> now has properties:
  <a href=
  "script_classes.htm#TVMProcedure.InputSize">InputSize</a> and
  <a href=
  "script_classes.htm#TVMProcedure.OutputSize">OutputSize</a><br />
  [+] Ultimate: New API are added to SDK - <a href=
  "sdk_functions.htm#VMProtectBeginVirtualizationLockByKey">VMProtectBeginVirtualizationLockByKey</a>
  and <a href=
  "sdk_functions.htm#VMProtectBeginUltraLockByKey">VMProtectBeginUltraLockByKey</a><br />
  </p>

  <h3>Version 2.05</h3>

  <p>[!] Fixed errors with line identification for MinGW programs<br />
  [!] Fixed the "Out of system resources" error occurred when many procedures were added to the project<br />
  [!] Fixed an error occurred in the console version during output of strings<br />
  [*] MAP file date is now taken from its contents<br />
  [+] Ultimate: Added examples on working with the <a href=
  "manager/index.htm">licensing system</a> (on MSVC and
  Delphi)<br />
  [+] Ultimate: Added source codes of the <a href=
  "manager/keygen/keygen_dll.htm">serial number generator</a>
  on MSVC<br />
  [+] Ultimate: Added <a href="project_files.htm">DLL Box</a>
  (available only for EXE files)<br />
  [+] Ultimate: A new class <a href=
  "script_classes.htm#TInternalDLLs">TInternalDLLs</a> is added to the script<br />
  [+] Ultimate: In the script class <a href=
  "script_classes.htm#TVMProtector">TVMProtector</a> a new property is added: <a href=
  "script_classes.htm#TVMProtector.InternalDlls">InternalDlls</a><br />

  [+] In the script class <a href=
  "script_classes.htm#TMapRecord">TMapRecord</a> a new property is added:
  <a href=
  "script_classes.htm#TMapRecord.SegmentName">SegmentName</a><br />
  [+] In the script class  <a href=
  "script_classes.htm#TIntelRecord">TIntelRecord</a> a new property is added: <a href=
  "script_classes.htm#TIntelRecord.Operands">Operands</a><br />
  [+] Czech language is added<br /></p>

  <h3>Version 2.04</h3>

  <p>[!] Fixed an error occurred during obfuscation of FDIVR
  [ESP+XXXX]<br />
  [!] Fixed an error occurred during obfuscation of SWITCH in x64 applications
  <br />
  [*] When using the "<a href=
  "project_options.htm#MemoryProtection">Memory protection</a>" option, a file is checked for integrity now<br />
  [*] Ultimate: Better licensing module integration to the protected program<br />
  [+] Added support for files with overlay<br />
  [+] Ultimate: Added an example of <a href=
  "manager/keygen/keygen_net.htm">C# serial number generator</a><br />
  [+] Ultimate: <a href="manager/licenses.htm">License manager</a> now has export of product parameters for a generator on C#<br />
  [+] Ultimate: The <a href="mode_console.htm">console version</a>
  now has the "-lf" parameter to specify a file with licensing parameters<br />
  [+] Added French help file<br /></p>

  <h3>Version 2.03</h3>

  <p>[!] Fixed an error occurred when using <a href=
  "project_options.htm#ImportProtection">import protection</a> in SYS files (base address of hal.dll wasn't determined under Windows 7)<br />
  [!] Fixed an error occurred during obfuscation of command using CRx registers in SYS files<br />
  [!] Fixed small issues<br />
  [*] Improvements in <a href="manager/index.htm">licensing system</a> of the Ultimate version<br />
  [+] French language is added<br /></p>

  <h3>Version 2.02</h3>

  <p>[!] An error is fixed in SenseLock Edition occurred when several programs using different licenses on the key run simultaneously
  (users of SenseLock Edition should update master key firmware)<br />
  [!] Fixed EntryPoint disassembly error in Delphi programs<br />
  [!] Fixed small issues<br />
  [*] Important improvements in <a href="manager/index.htm">licensing system</a> of the Ultimate version<br />
  [*] SenseLock Edition now uses the licensing system of the Ultimate version (users of SenseLock Edition should update master key firmware)<br />
  [*] Improved detection of strings marked with <a href=
  "sdk_functions.htm#VMProtectDecryptStringA">VMProtectDecryptStringA</a>/<a href="sdk_functions.htm#VMProtectDecryptStringW">VMProtectDecryptStringW</a><br />

  [+] GUI now supports Unicode<br />
  [+] Traditional Chinese is added<br /></p>

  <h3>Version 2.01</h3>

  <p>[!] Fixed small issues in the installer, the <a href=
  "manager/licenses.htm">license manager</a> and <a href=
  "sdk_functions.htm">SDK</a><br />
  [*] VMProtect is registered with its own 
  <a href="manager/index.htm">licensing system now</a><br />
  [+] Added Chinese Simplified<br /></p>

  <h3>Version 2.0</h3>

  <p>[!] Fixed disassembly and virtualization bugs of CALL FWORD PTR [XXXX] and JMP FWORD PTR [XXXX] commands<br />
  [!] An error is fixed in SenseLock Edition occurred when the serial number is asked after the standard PIN of a user has changed<br />
  [!] Fixed an error occurred during virtualization of SWITCH in х64 applications<br />
  [!] Fixed an error occurred while disassembling commands:
  ROL, ROR, RCL, RCR, SHL, SHR, SAL and SAR, with the REX prefix in х64 applications<br />
  [!] Fixed an error occurred during virtualization of the CMOVxx command<br />
  [!] Fixed small issues<br />
  [*] The help file in Russian is updated<br />
  [*] The help file in English is updated<br />
  [+] Added the <a href="manager/index.htm">licensing system</a> (available only in Ultimate version)<br />
  [+] New API are added to the SDK - <a href=
  "sdk_functions.htm#VMProtectDecryptStringA">VMProtectDecryptStringA</a>
  and <a href=
  "sdk_functions.htm#VMProtectDecryptStringW">VMProtectDecryptStringW</a><br />

  [+] The script class <a href=
  "script_classes.htm#TVMProcedure">TVMProcedure</a> now has a new property
  <a href=
  "script_classes.htm#TVMProcedure.CompilationOptions">CompilationOptions</a><br />

  [+] The script class <a href=
  "script_classes.htm#TVMProcedure">TVMProcedure</a> now has properties
  <a href=
  "script_classes.htm#TVMProcedure.SELicense">SELicense</a> and
  <a href="script_classes.htm#TVMProcedure.SEVersion">SEVersion</a>
  (available in SenseLock Edition only)<br />
  [+] The script class <a href=
  "script_classes.htm#TVMProtector">TVMProtector</a> has new properties added: <a href=
  "script_classes.htm#TVMProtector.VMSectionName">VMSectionName</a>
  and <a href=
  "script_classes.htm#TVMProtector.VMExecutorCount">VMExecutorCount</a><br />

  [+] The script class <a href=
  "script_classes.htm#TVMProtector">TVMProtector</a> has new properties added:
  <a href=
  "script_classes.htm#TVMProtector.SEMasterPassword">SEMasterPassword</a>,
  <a href=
  "script_classes.htm#TVMProtector.SEUserPIN">SEUserPIN</a>,
  <a href="script_classes.htm#TVMProtector.SEKeyID">SEKeyID</a>,
  <a href="script_classes.htm#TVMProtector.SELicense">SELicense</a>
  and <a href=
  "script_classes.htm#TVMProtector.SEVersion">SEVersion</a>
  (available in SenseLock Edition only)<br />
  [-] The option "Create online commands dynamically" is removed<br /></p>

  <h3>Version 1.81</h3>

  <p>[!] Fixed an error occurred during execution of mutated code on Pentium 4 processors<br />
  [!] Fixed an error occurred during execution of virtualized code on some Athlon processors<br />
  [!] Fixed errors occurred during disassembly and virtualization of exception handler structures with an exception filter 
  (for program on Delphi and Borland
  C++ Builder)<br />
  [!] Fixed an error occurred when using <a href=
  "project_options.htm#VirtualMachines">several VM</a> in 64-bit files<br />
  [!] Fixed small issues<br />
  [*] Enhanced detection of <a href=
  "use_markers.htm">marker</a> names (for programs on Visual C)<br />
  [*] Significantly reduced memory consumption during compilation<br />
  [*] The "HTML" resource is not packed now<br />
  [*] The help file in Russian is updated<br />
  [+] Added wildcard search of procedures in the "Master" mode<br />
  [+] Added <a href="project_options.htm#PackOutputFile">new packing mode</a> featuring higher compression rate<br />
  [+] Added support for files with TLS callbacks<br />
  [+] New API is added to the SDK - <a href=
  "sdk_functions.htm#VMProtectIsValidImageCRC">VMProtectIsValidImageCRC</a><br />
  </p>

  <h3>Version 1.8</h3>

  <p>[!] Fixed errors occurred during <a href=
  "project_options.htm#ImportProtection">import protection</a> in SYS files<br />
  [!] Fixed errors occurred during <a href=
  "project_options.htm#MemoryProtection">memory protection</a> in
  DLL/SYS files<br />
  [!] Fixed errors occurred when using <a href=
  "project_options.htm#VirtualMachines">multiple VM</a> in
  DLL/SYS-files<br />
  [!] Fixed an error occurred during mutation of the code with exception handlers<br />
  [!] Fixed an error occurred when <a href=
  "project_options.htm#MemoryProtection">memory protection</a> and
  <a href="project_options.htm#Watermarks">watermarks</a> were used simultaneously<br />
  [!] Fixed small bugs<br />
  [*] Improved detection of references to <a href=
  "use_markers.htm">marked</a> strings (you don't have to mark every reference to a protected string now)<br />
  [*] Improved <a href="project_options.htm#ImportProtection">import protection</a><br />
  [*] Improved <a href=
  "project_options.htm#DebuggerDetection">debugger detection</a><br />
  [*] The help file in Russian is updated<br />
  [+] The GUI version now allows saving project files under different names<br />
  [+] Now you can open project files<br />
  [+] Added <a href=
  "project_options.htm#VirtualizationToolsDetection">Sandboxie detection</a><br />
  [+] Added support for files compiled with the /SAFESEH key<br />
  [+] Added support for CodeGear 2009<br />
  [+] Now you can have named markers (when <a href=
  "sdk_functions.htm#VMProtectBegin">VMProtectBegin</a>/<a href=
  "sdk_functions.htm#VMProtectBeginMutation">VMProtectBeginMutation</a>/<a href="sdk_functions.htm#VMProtectBeginVirtualization">VMProtectBeginVirtualization</a>/<a href="sdk_functions.htm#VMProtectBeginUltra">VMProtectBeginUltra</a>
  from VMProtectSDKxx.dll/VMProtectDDKxx.sys are used)<br />
  [+] New API are added to the SDK (<a href=
  "sdk_functions.htm#VMProtectIsDebuggerPresent">VMProtectIsDebuggerPresent</a>
  and <a href=
  "sdk_functions.htm#VMProtectIsVirtualMachinePresent">VMProtectIsVirtualMachinePresent</a>)<br />

  [+] A new utility was added to SenseLock Edition - "Remote update and licensing system"<br />
  [+] SenseLock Edition now has key id lock<br /></p>

  <h3>Version 1.7</h3>

  <p>[!] Sections with SHAREABLE+WRITABLE flags are not packed now<br />
  [!] Fixed small issues<br />
  [*] Improved <a href="project_options.htm#ImportProtection">import protection</a> for SYS files<br />
  [*] Improved <a href=
  "project_options.htm#PackOutputFile">packing</a> of SYS files
  (packed sections are not flagged with WRITABLE any more)<br />
  [*] Improved <a href=
  "project_options.htm#DebuggerDetection">debugger detection</a><br />
  [+] Added the "<a href=
  "project_options.htm#MemoryProtection">Memory protection</a>" option (this option prevent changes to be made to memory while the application is running)<br />
  [+] Added the "<a href=
  "project_options.htm#VirtualizationToolsDetection">Detect virtualization tools (VMware/Virtual PC)</a>" option<br />
  [+] The script class <a href=
  "script_classes.htm#TPEFile">TPEFile</a> now has a property
  <a href=
  "script_classes.htm#TPEFile.EntryPoint">EntryPoint</a><br /></p>

  <h3>Version 1.65</h3>

  <p>[!] Fixed small issues<br />
  [*] Improved <a href="project_options.htm#ImportProtection">import protection</a><br />
  [*] Improved <a href=
  "project_options.htm#DebuggerDetection">debugger detection
  </a><br />
  [+] Added identification of unpaired <a href=
  "use_markers.htm">markers</a> (unpaired markers are available in the general list of objects)<br />
  [+] Added markers to apply a pre-defined compilation type:
  VMProtectBeginVirtualization, VMProtectBeginMutation and
  VMProtectBeginUltra<br />
  [+] Added Chinese Traditional language<br /></p>

  <h3>Version 1.64</h3>

  <p>[!] Fixed a bug occurred during execution of a <a href=
  "project_options.htm#PackOutputFile">packed file</a>,
  if it had "TYPELIB", "REGISTRY" and "MUI" resources<br />
  [!] Fixed the R6002 error occurred during execution of a packed file (for programs written on Visual C)<br />
  [!] Fixed a bug occurred when the
  "<a href="project_options.htm#ImportProtection">Import protection</a>" option was used in 64-bit SYS files<br />
  [!] Fixed small issues<br />
  [*] The settings file is now saved to %APPDATA%/PolyTech/VMProtect<br />
  [*] Improved <a href="project_options.htm#ImportProtection">import protection
  </a><br />
  [+] Added the option "<a href=
  "project_options.htm#VirtualMachines">Virtual machines</a>"
  (different virtualized fragments of code are executed on different virtual machines with different architecture)<br />
  [+] Added the option "<a href=
  "project_options.htm#DebuggerDetection">Debugger detection</a>"
  (if a debugger is detected during the protected application execution, the app shows a corresponding message and closes)<br />
  [+] The script class <a href=
  "script_classes.htm#TPESection">TPESection</a> now has a property
  <a href=
  "script_classes.htm#TPESection.IncludedInPacking">IncludedInPacking</a><br />

  [+] Added support for IRETD command<br />
  [+] Added an example of using markers in Lazarus<br /></p>

  <h3>Version 1.63</h3>

  <p>[!] Fixed an error occurred when using the 
  "<a href="project_options.htm#ImportProtection">Import protection</a>" option<br />
  [!] Fixed small issues<br />
  [+] A new event was added to the script: <a href=
  "script_events.htm#OnBeforePackFile">OnBeforePackFile</a><br />
  [+] The script class <a href=
  "script_classes.htm#TPEFile">TPEFile</a> now has a new property
  <a href="script_classes.htm#TPEFile.Handle">Handle</a><br />
  [+] Added an example of using <a href=
  "use_markers.htm">markers</a> in Free Pascal<br />
  [*] Improved integrity control of VM objects<br /></p>

  <h3>Version 1.62</h3>

  <p>[!] Fixed errors occurring when using the 
  "<a href="project_options.htm#ImportProtection">Import protection
  </a>" option<br />
  [!] Fixed an error occurred when handling an exception in the TRY/EXCEPT/END block in the "Ultra" mode (for programs written on Delphi and
  Borland C++ Builder)<br />
  [*] Improved <a href="project_options.htm#ImportProtection">import protection</a> for SYS files<br />
  [+] Every object of a project now can have its own compilation options for individual performance tuning
  (individual options are configured in the project tree)<br />
  [+] Added the "Move resources to the end of the file" option<br />
  [+] Added an example of using extended markers (see
  Examples\Scripts\UseExtMarkers)<br /></p>

  <h3>Version 1.61</h3>

  <p>[!] Fixed an error occurred when starting packed files under Windows 95/98<br />
  [!] Fixed small issues<br />
  [+] An ability to pass a file name via the command line is added to the Lite version<br />
  [+] A history is added in the "Master" mode<br />
  [+] Language selection is added in the "Master" mode<br />
  [+] Added the "<a href=
  "project_options.htm#ImportProtection">Import protection</a>" option
  (recommended for use along with packing of the output file)<br />
  [+] In the <a href="mode_console.htm">console version</a>, a new parameter "-we" is added(with this parameter all warnings are displayed as error)<br />
  [+] A new class <a href=
  "script_classes.htm#TPEResourceRecords">TPEResourceRecords</a> is added to the script<br />

  [+] The script class <a href=
  "script_classes.htm#TPEFile">TPEFile</a> now has a new property
  <a href=
  "script_classes.htm#TPEFile.ResourceRecords">ResourceRecords</a><br />
  </p>

  <h3>Version 1.6</h3>

  <p>[!] Fixed small issues<br />
  [*] Improved work with identical strings(now identical strings are displayed as a single object with multiple elements inside)<br />
  [+] Added an option to pack the output file<br />
  [+] A new class <a href=
  "script_classes.htm#TPEExportRecords">TPEExportRecords</a> is added to the script<br />
  [+] The script class <a href=
  "script_classes.htm#TPEFile">TPEFile</a> now has a property
  <a href=
  "script_classes.htm#TPEFile.ExportRecords">ExportRecords</a><br />

  [+] A new event <a href=
  "script_events.htm#OnBeforeSaveFile">OnBeforeSaveFile</a> is added to the script<br />
  [+] The help file in Chinese is added (translation by Wang
  Xiaopeng)<br />
  [+] Added MAP-file date/time check. (If modification date and time of the MAP-file differ from those of the protected file, the MAP-file is not loaded)<br /></p>

  <h3>Version 1.56</h3>

  <p>[!] Fixed an error occurred during virtualization of BT, BTC, BTR and BTS commands<br />
  [!] Fixed small issues<br />
  [*] List of options is sorted in order of priority<br />
  [*] Improved support for SEH for VC8<br />
  [*] Improved dynamic online-command production<br />
  [*] Improved VM object integrity control<br />
  [+] Added support for PREFETCH and PREFETCHW commands<br />
  [+] New functions CompareText and
  AnsiCompareText are added to the script<br />
  [+] The script class <a href=
  "script_classes.htm#TPEFile">TPEFile</a> now has a new property
  <a href="script_classes.htm#TPEFile.Size">Size</a><br />
  [+] Added an example of using <a href=
  "use_markers.htm">markers</a> in MinGW<br />
  [+] Added Chinese language (translation by Wang Xiaopeng)<br />
  [+] In the procedure adding dialog <a href=
  "project_functions.htm#Search">wildcard search</a> is added ("*" and "?" are allowed)<br />
  [+] Messages of the compiler now includes output file size<br /></p>

  <h3>Version 1.55</h3>

  <p>[!] Fixed an error occurred when working with a file having unaligned ImageSize value<br />
  [!] Fixed an error occurred when calculating TRY block beginning in Delphi programs<br />
  [!] Fixed an error occurred when a "mixed" code was processed in Discardable and NonDiscardable section of SYS-files<br />
  [!] Fixed an error occurred during virtualization of 64-bit DLL/SYS-files<br />
  [*] The "Encrypt registers upon exit of the VM" option is restored<br />
  [+] A new class <a href=
  "script_classes.htm#TIniFile">TIniFile</a> is added to the script<br />
  [+] The script class <a href=
  "script_classes.htm#TPEFile">TPEFile</a> now has new properties and methods<br />
  [+] The GUI-version now features a calculator to calculate file offsets by addresses<br />
  [+] Added Italian language (translation by Gabriele Lanza)<br /></p>

  <h3>Version 1.54</h3>

  <p>[!] Fixed an error occurred during mutation of the PUSH ESP command<br />
  [!] ИFixed an error occurred during virtualization of the FLDCW [ESP+xxxx] command<br />
  [!] Fixed an error occurred during obfuscation of the bytecode<br />
  [*] GUI is enhanced<br />
  [+] Added German and Spanish languages<br />
  [+] Added support for <a href="script.htm">scripts</a><br />
  [+] In the <a href="mode_console.htm">console version</a> a parameter is added to specify a script file name<br /></p>

  <h3>Version 1.53</h3>

  <p>[!] Fixed errors occurred during virtualization of code in DLL/SYS-files<br />
  [*] Code virtualization improvements<br />
  [*] In the <a href="mode_console.htm">console version</a> "running" percent is removed when the output is directed to a file<br />
  [+] Added an option to insert markers for x86-64<br />
  [+] Added an ability to create folders in a project<br />
  [+] In the <a href="mode_console.htm">console version</a> a new parameter is added to identify the file name of a project<br /></p>

  <h3>Version 1.52</h3>

  <p>[!] Fixed an error occurred during mutation of CMOVxx, CMPXCHG and CMPXCHG8B commands<br />
  [!] Fixed an error occurred during mutation of LEA ESP,[ESP+xxxx] command<br />
  [*] The RCL and RCR commands are added to the basic logic of VM<br />
  [+] Added support for x86-64<br />
  [+] In the GUI-version, the "<a href=
  "project_options.htm">Options</a>" tab now can be set to display an output file name<br />
  [+] Added the help file in Russian and English<br /></p>

  <h3>Version 1.51</h3>

  <p>[!] Fixed an error occurred during creating a "Relocation
  Table" of zero length<br />
  [!] Fixed an error occurred during mutation of the CALL [xxxx] command in the "Mutation" mode in DLL/SYS files<br />
  [!] In the Delphi example, VMProtectBegin definition now includes a command preventing optimization of VMProtectBegin 
  (optimization could lead to a non-functional protected application)<br />
  [+] Added the "Autosave project after compiling" option<br /></p>

  <h3>Version 1.5</h3>

  <p>[!] Fixed an error occurred while dragging files to the main window<br />
  [!] Fixed an error occurred when working with read-only files<br />
  [!] Fixed small issue during compilation in the "Ultra" mode<br />
  [*] A protected file now inherits attributes of the original file<br />
  [+] the list of protected procedures can now include strings (string assignment must be selected with markers)<br />
  [+] The installation package includes examples of using markers in Borland C++ Builder, Delphi, MASM, Visual Basic and Visual
  C++<br />
  [+] Added an option: "Integrate to shell"<br /></p>

  <h3>Version 1.4</h3>

  <p>[!] Fixed an error occurred during mutation of IMUL, MUL, IDIV, DIV commands<br />
  [!] Fixed an error occurred during virtualization of multiple CASE tables following one by one<br />
  [!] Fixed an error occurred during virtualization of POP word/dword ptr [esp+xxxx] and IMUL reg8 commands<br />
  [!] Fixed an error occurred while disassembling MOVNTPS and MOVNTPD commands<br />
  [+] Added a new type of compilation "Ultra" (mutation + virtualization)"<br />
  [+] Added compilation type selection in the add/modify procedure window<br />
  [+] Added search for watermarks in processes (used for searching watermarks in packed files)<br />
  [*] Enhanced compatibility with ASM compilers (TASM, MASM etc.)<br /></p>

  <h3>Version 1.3</h3>

  <p>[!] Fixed an error occurred during emulation of the FILD word ptr [xxxx] command<br />
  [+] Each procedure can be specified a certain compilation type ("Mutation" or "Virtualization")<br /></p>

  <h3>Version 1.25</h3>

  <p>[+] Added support for SEH for VC7-8<br />
  [+] Added support for markers in Visual Basic (begin and end of a fragment are marked with the following lines: Call VarPtr("VMProtect
  begin") and Call VarPtr("VMProtect end"))<br />
  [*] In the registered version, the VM interpreter completely changes now (to prevent automatic detection of protection by signature scanners such as PEiD, RDG Packer
  Detector and others)<br /></p>

  <h3>Version 1.24</h3>

  <p>[+] Added a possibility to insert watermarks to a protected file<br />
  [*] VM interpreter now supports multi-threaded applications (no need to create a procedure to allocate memory for interpreter's needs)<br />
  [-] The option to allocate memory for VM interpreter's neds is removed. <br /></p>

  <h3>Version 1.23</h3>

  <p>[!] Fixed small issues [+] Added the "Master" mode [+] The procedure tree now displays links [*] Options
  "Hide constants", "Dynamically create online commands",
  "Encrypt registers on jumps", "VM object integrity control" and others are only available for registered users now</p>

  <h3>Version 1.22.2</h3>

  <p>[!]Fixed an error occurred during compilation of projects with the "Memory allocation in the interpreter" option enabled<br /></p>

  <h3>Version 1.22</h3>

  <p>[!] Fixed small issues<br />
  [+] Added a possibility to check integrity of a bytecode (requires enabling the "VM object integrity control" option on)<br /></p>

  <h3>Version 1.21</h3>

  <p>[!] Fixed an error occurred during emulation of CMPXCHG8b, if operands are EAX and EDX<br />
  [+] Now interpreter contains only those commands that will be used to execute a bytecode<br />
  [-] Some commands were removed from the basic logic of VM (to complicate analysis and decompiling of a bytecode)<br /></p>

  <h3>Version 1.2</h3>

  <p>[!] Fixed an error occurred when the Bound Import directory is moved<br />
  [+] Added a possibility to include marked parts of the code to the project(the beginning and the end of the 
  fragment are marked by the following code assembler insertions - "db $EB,$10,'VMProtect begin',0" and "db
  $EB,$0E,'VMProtect end',0")<br />
  [+] Added an option to include exported functions to the project<br />
  [-] Removed the "Encrypt bytecode" option (bytecode is now always encrypted)<br /></p>

  <h3>Version 1.1</h3>

  <p>[!] Fixed errors occurred while: emulation of SBB
  (wrong state of some flags); emulation of CMOVxx,
  CMPXCHG and CMPXCHG8b (when the second operand was addressed using ESP or a DWORD value)<br />
  [+] Added support for SEH in VB6 (native)<br />
  [+] Added support for MAP-files generated by IDA<br />
  [+] Added an option for batch adding of procedures<br />
  [+] Added displaying of links to commands directly in the list of procedures<br />
  [+] Added a new option: "Encrypt registers on jumps"<br /></p>

  <h3>Version 1.09</h3>

  <p>[*] End of procedure detection process while disassembling of cycles is improved<br />
  [+] For UPX compatibility, Shareable flag of Writeable sections is cleared (if the old relocation table is used for VM needs)<br /></p>

  <h3>Version 1.08</h3>

  <p>[*] Big fragments of code disassembly is sped up<br />
  [*] Metamorphism mechanism of bytecode interpreter is improved<br /></p>

  <h3>Version 1.07</h3>

  <p>[!] Fixed errors occurred when: working with PE files (when code section virtual size was equal to zero);
  obfuscating FPU commands (errors led to wrong results); disassembly (CWD was detected instead of CWDE);
  emulation of ROL and ROR commands (if the argument was 1-byte)<br />
  [+] Added support for SSE2 command group<br /></p>

  <h3>Version 1.06</h3>

  <p>[!] Fixed an error corrupting the A flag state after emulating SUB, CMP, DEC, NEG, CMPXCHG, SCAS and
  CMPS commands.<br />
  [!] Fixed an error occurred when working with an unaligned file<br />
  [+] Added support for BSF, BSR and CMPXCHG8b instructions<br />
  [+] For multi-threaded applications, you can specify a memory allocation procedure for the VM interpreter
  (memory allocation procedure must be defined as fastcall)<br /></p>

  <h3>Version 1.05</h3>

  <p>[+] Added support for FUCOMPP and FCMOVxx instructions<br />
  [+] The type of strings
  (ANSI/Unicode/Pascal) and comments for structure fields made by compilers are now shown 
  when looking at parts of the code<br />
  [+] Added a metamorphism procedure for the bytecode interpreter<br />
  [+] Added new compilation options: "Bytecode encryption" and
  "Strip relocations (for EXE files only)"<br />
  [-] Removed the "Obfuscate bytecode" option (now always on)<br /></p>

  <h3>Version 1.04</h3>

  <p>[!] Fixed an error occurred while detecting SEH handlers for C++<br />
  [*] Bytecode obfuscator is totally reworked<br />
  [+] Relocations are highlighted in the code now<br /></p>

  <h3>Version 1.03</h3>

  <p>[+] "Free space" from original parts of code is used to store the bytecode<br />
  [+] Added detection of "short" pascal-format strings (first byte defines the length of a string)<br /></p>

  <h3>Version 1.02</h3>

  <p>[!] Fixed errors related to execution of online-commands in DLL/SYS<br />
  [*] Changed the calculation algorithm of bytecode checksum<br />
  [+] Added an option "VM interpreter integrity control" (also works as an anti-debug technique if the interpreter is being debugged and the debugger uses INT 03 as breakpoints).<br />
  [+] Usage of "old" relocation tables to store the bytecode<br /></p>

  <h3>Version 1.01</h3>

  <p>[!] Fixed an error occurred when files with relocations were created(the error arose during operation of DLL/SYS-files in Windows 95/98/Me)<br />
  [!] Fixed small issues in the disassembler<br />
  [+] Added support for instructions: F2XM1, FABS, FCLEX, FCOS,
  FDECSTP, FINCSTP, FINIT, FLDCW, FLDLN2, FLDLG2, FPREM, FREM1,
  FPTAN, FRNDINT, FSIN, FSTCW, FTST, FYL2X, FPATAN, FLDZ,
  FISTP<br />
  [+] Added support for MAP-files of Borland C Builder<br />
  [+] Now you can select the language of the interface and messages (Russian and English are available)<br /></p>

  <h3>Version 1.0</h3>

  <p>[!] Fixed small bugs in the interface<br />
  [+] Added support for CMOV and CMPXCHG<br /></p>

  <h3>Version 0.97</h3>

  <p>[!] Fixed small bugs in the interface<br />
  [+] Added support for Virtual Pascal<br /></p>

  <h3>Version 0.96</h3>

  <p>[!] Fixed error in the compiler (incorrect work with the C flag while compiling NEG and SBB instructions; fixed POPF processing;
  fixed wrong bytecode CRC check when processing external conditional jumps)<br />
  [!] Fixed bugs in the VM interpreter related to bytecode obfuscation<br />
  [+] Improved processing of a MAP-file generated by C/C++
  compilers (procedure names contain information about arguments)<br /></p>

  <h3>Version 0.94</h3>

  <p>[!] Fixed many errors<br /></p><br />
  <br />
  <br />
  <br />
  <br />
  <hr noshade="noshade" size="1" />

  <div align="center">
    © 2006-2015 Copyright VMProtect Software
  </div>
</body>
</html>
